package cn.mandy.sysadmin.service;

import cn.mandy.sysadmin.dto.*;
import cn.mandy.sysadmin.model.*;

import java.util.List;

// user_id, audit_user_id, signature 等信息的填写
public interface MandyService {

    // list select; add insert; edit update; audit update; delete
    List<MandyPermission> panelList(MandyPanelListParam mandyPanelListParam);

    List<MandyPermission> listAllAuditedPanels();

    List<MandyPermission> listAllMenuGroups();

    //
    int panelCopy(MandyPermission panel);

    int panelUpdate(MandyPermission panel);

    int panelAudit(MandyPermission panel);

    //
    //int panelDelete(Long panelId);

    List<MandyRole> roleList();

    MandyRoleDetail getRoleMenuForUpdate(Long roleId);

    MandyRoleMenuGroup createMenuGroup(MandyRoleMenuGroup mandyRoleMenuGroup);

    int roleCopy(MandyRole MandyRole);

    MandyRole roleUpdate(List<MandyRoleResource> mandyRoleResources);

    MandyRole roleEnable(MandyRole mandyRole);

    MandyRole roleDisable(MandyRole mandyRole);

    List<MandyUserWithRoles> listUser(MandyUserWithRolesParam mandyUserWithRolesParam);

    Long countUser(MandyUserWithRolesParam mandyUserWithRolesParam);

    MandyUserCreateParam userCreate(MandyUserCreateParam mandyUserCreateParam);

    MandyUserWithRoles userDisable(MandyUserWithRoles mandyUserWithRoles);

    MandyUserWithRoles userEnable(MandyUserWithRoles mandyUserWithRoles);

    MandyUserWithRoles userNewDepartment(MandyUserWithRoles mandyUserWithRoles);

    MandyUserWithRoles userPasswordReset(MandyUserWithRoles mandyUserWithRoles);

    MandyUserWithRoles userAudit(MandyUserWithRoles mandyUserWithRoles);

    MandyUserHologram getUserHologramByUserName(String userName);

    List<MandyDepartment> listDepartment();

    MandyUserWithRoles userNewRoles(MandyUserWithRoles mandyUserWithRoles);

    List<MandyParameter> getAllParameters();

}
